package com.ebao.util.web;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class HtmlUtil {
	
	private static String[][] codeArr = {{"<", "&lt;"}, {">", "&gt;"}};

	/**
	 * 用于转换html标签<br>
	 * 目的是为了解决用户录入可执行脚本，造成系统一系列的问题
	 * @param htmlText
	 * @return
	 */
	public static String decode(String htmlText) {
		for (int i = 0; i < codeArr.length; i++) {
			htmlText = htmlText.replace(codeArr[i][0], codeArr[i][1]);
		}
		return htmlText;
	}
	
	/**
     * 去除html代码
     * @param inputString
     * @return
     */
    public String HtmltoText(String inputString) {
        String htmlStr = inputString; //含html标签的字符串
        String textStr ="";
        Pattern p_script;
        Matcher m_script;
        Pattern p_style;
        Matcher m_style;
        Pattern p_html;
        Matcher m_html;          
        Pattern p_ba;
        Matcher m_ba;
        
        try {
            String regEx_script = "<[\\s]*?script[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?script[\\s]*?>"; //定义script的正则表达式{或<script[^>]*?>[\\s\\S]*?<\\/script> }
            String regEx_style = "<[\\s]*?style[^>]*?>[\\s\\S]*?<[\\s]*?\\/[\\s]*?style[\\s]*?>"; //定义style的正则表达式{或<style[^>]*?>[\\s\\S]*?<\\/style> }
            String regEx_html = "<[^>]+>"; //定义HTML标签的正则表达式
            String patternStr = "\\s+";
            
            p_script = Pattern.compile(regEx_script,Pattern.CASE_INSENSITIVE);
            m_script = p_script.matcher(htmlStr);
            htmlStr = m_script.replaceAll(""); //过滤script标签

            p_style = Pattern.compile(regEx_style,Pattern.CASE_INSENSITIVE);
            m_style = p_style.matcher(htmlStr);
            htmlStr = m_style.replaceAll(""); //过滤style标签
         
            p_html = Pattern.compile(regEx_html,Pattern.CASE_INSENSITIVE);
            m_html = p_html.matcher(htmlStr);
            htmlStr = m_html.replaceAll(""); //过滤html标签
            
            p_ba = Pattern.compile(patternStr,Pattern.CASE_INSENSITIVE);
            m_ba = p_ba.matcher(htmlStr);
            htmlStr = m_ba.replaceAll(""); //过滤空格
         
         textStr = htmlStr;
         
        }catch(Exception e) {
            System.err.println("Html2Text: " + e.getMessage());
        }
        
        return textStr;//返回文本字符串
     }
    
}
